package com.hopu.oa.service.process;

import com.hopu.oa.entity.management.AoaTypeList;
import com.hopu.oa.entity.process.*;
import com.hopu.oa.entity.user.AoaUser;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

public interface BursementService {

    AoaBursement selectAllBursement(@Param("processId") Integer processId);

    List<AoaTypeList> selectTypeList();

    AoaUser selectByProcessUserIdAfter(Integer userId);

    AoaTypeList selectByTypeId(Integer typeId);

    List<AoaDetailsburse> selectByBursementIdAfter(Integer BursementId);

    AoaEvection selectEvectionByProcessId(@Param("processId") Integer processId);

    AoaEvectionmoney selectEvectionmoneyByProcessId(@Param("processId") Integer processId);

    List<AoaStay> selectStayByEvectionmoneyId(@Param("EvectionmoneyId") Integer EvectionmoneyId);

    List<AoaTraffic> selectTrafficBy(@Param("EvectionmoneyId") Integer EvectionmoneyId);

    //我的申请分页模糊搜素
    List<AoaProcessList> selectAll(@Param("userId") Integer userId, String baseKey, @Param("index") Integer index, @Param("size") Integer size);

    //根据id查询全部
    AoaProcessList selectById(Integer id);

    //查询请假天数和请假类型
    AoaHoliday selectByProID(Integer id);

    // 查询经理意见和人事意见
    AoaHoliday selectByID(Integer proId);

    //查询加班类型和加班时间
    AoaOvertime selectOverAndTypeById(Integer prcId);

    AoaOvertime selectByProId(Integer proId);

    AoaResign selectResignByByProcessId(@Param("processId") Integer processId);

    AoaRegular selectRegularByProcessId(@Param("processId") Integer processId);

    int ManagerAdviceBursement(@Param("proId") Integer proId, @Param("managerAdvice") String managerAdvice);

    int FinancialAdviceBursement(@Param("proId") Integer proId, @Param("financialAdvice") String financialAdvice);

    int ManagerAdviceOvertime(@Param("proId") Integer proId, @Param("managerAdvice") String managerAdvice);

    int personneAdviceOvertime(@Param("proId") Integer proId, @Param("personnel_advice") String personnelAdvice);

    int ManagerAdviceEvection(@Param("proId") Integer proId, @Param("managerAdvice") String managerAdvice);

    int personneAdviceEvection(@Param("proId") Integer proId, @Param("personnel_advice") String personnelAdvice);

    int ManagerAdviceResign(@Param("proId") Integer proId, @Param("managerAdvice") String managerAdvice);

    int FinancialAdviceResign(@Param("proId") Integer proId, @Param("financialAdvice") String financialAdvice);

    int personneAdviceResign(@Param("proId") Integer proId, @Param("personnel_advice") String personnelAdvice);

    int ManagerAdviceRegular(@Param("proId") Integer proId, @Param("managerAdvice") String managerAdvice);

    int personneAdviceRegular(@Param("proId") Integer proId, @Param("personnel_advice") String personnelAdvice);


    int ManagerAdviceHoliday(@Param("proId") Integer proId, @Param("managerAdvice") String managerAdvice);

    int personneAdviceHoliday(@Param("proId") Integer proId, @Param("personnel_advice") String personnelAdvice);

    int ManagerAdviceEvectionMoney(@Param("proId") Integer proId, @Param("managerAdvice") String managerAdvice);

    int FinancialAdviceEvectionMoney(@Param("proId") Integer proId, @Param("financialAdvice") String financialAdvice);

}
